Traditional storage and networking software does not account for modern parallel hardware interfaces present in non-volatile memory express (NVME) storage devices and remote direct memory access (RDMA) network adapters. These interfaces must operate independently for maximum performance.
The performance goals of storage software have increased by several orders of magnitude with the arrival of solid state drives. This requires a revamp of traditional software design to eliminate bottlenecks from lock acquisition and contention.
Modern computer design provides numerous parallel processing cores and central processing units (CPU) sockets, each with dedicated memory controllers and PCI Express (PCIe) interfaces. These hardware configurations must be considered for efficient software design, allowing a storage subsystem to move work to the most efficient physical interface without locking.
The entire high speed datapath must allow management operations for configuration and tuning without slowing down the storage and networking traffic.
Although there exists a storage performance development kit (SPDK) which has developed user mode, polling drivers to eliminate kernel transitions, data copies, and interrupt latencies, this is merely an initial step in supporting high performance storage and networking traffic.